package com.weiun.common.base.exception;

/**
 * 异常基类
 */
public class BaseException extends Exception {


    private static final long serialVersionUID = -5420974096907472856L;

    /**
     * 错误 编码
     */
    private int code;

    /**
     * 错误 信息
     */
    private String msg;


    public BaseException() {
        super();
    }

    /**
     * 创建 ERROR_ALERT 0e00
     * 错误提示异常 只是用来展示
     *
     * @param msg 错误 信息
     */
    public BaseException(String msg) {
        super(msg);
        init(ErrorMsgEnum.ERROR.getCode(), msg);
    }


    /**
     * @param msg  错误 信息
     * @param code 错误 编码
     */
    public BaseException(int code, String msg) {
        super(msg);
        init(code, msg);
    }


    private void init(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    /**
     */
    public BaseException(ErrorMsgEnum errorMsgEnum) {
        super(errorMsgEnum.getMsg());
        init(errorMsgEnum.getCode(), errorMsgEnum.getMsg());
    }

    /**
     * @param msg 错误 信息
     */
    public BaseException(ErrorMsgEnum errorMsgEnum, String msg) {
        super(msg);
        init(errorMsgEnum.getCode(), msg);
    }


    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String causedBy() {
        return msg;
    }


}
